mir: keep reference on queued events
authorWilliam Hua <william.hua@canonical.com>
Thu, 21 May 2015 16:48:27 +0000 (11:48 -0500)
committerWilliam Hua <william.hua@canonical.com>
Tue, 2 Jun 2015 19:14:27 +0000 (15:14 -0400)
gdk/mir/gdkmireventsource.c

index 5b55254f97c784362ff29809c964258e149a0eb2..41a4422c779a308402e689faa189fbed2998cd0f 100644 (file)
@@ -540,6 +540,7 @@ static void
 gdk_mir_queued_event_free (GdkMirQueuedEvent *event)
 {
   _gdk_mir_window_reference_unref (event->window_ref);
+  mir_event_unref (event->event);
   g_slice_free (GdkMirQueuedEvent, event);
 }
 
@@ -724,7 +725,7 @@ _gdk_mir_event_source_queue (GdkMirWindowReference *window_ref,
   queued_event = g_slice_new (GdkMirQueuedEvent);
   g_atomic_int_inc (&window_ref->ref_count);
   queued_event->window_ref = window_ref;
-  queued_event->event = event;
+  queued_event->event = mir_event_ref (event);
 
   g_mutex_lock (&source->mir_event_lock);
   g_queue_push_tail (&source->mir_events, queued_event);